home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 2000 July: Mac OS SDK / Dev.CD Jul 00 SDK2.toast / Development Kits / Cross Platform / QuickTime 4.1.2 Windows SDK / RIncludes / Menus.r < prev    next >
Encoding:
Text File  |  2000-04-12  |  4.7 KB  |  156 lines  |  [TEXT/R*ch]

  1. /*
  2.      File:        Menus.r
  3.  
  4.      Contains:    Menu Manager Interfaces.
  5.  
  6.      Version:    Technology:    Mac OS 9.0
  7.                  Release:    QuickTime 4.1
  8.  
  9.      Copyright:    © 1985-1999 by Apple Computer, Inc., all rights reserved.
  10.  
  11.      Bugs?:        For bug reports, consult the following page on
  12.                  the World Wide Web:
  13.  
  14.                      http://developer.apple.com/bugreporter/
  15.  
  16. */
  17.  
  18. #ifndef __MENUS_R__
  19. #define __MENUS_R__
  20.  
  21. #ifndef __CONDITIONALMACROS_R__
  22. #include "ConditionalMacros.r"
  23. #endif
  24.  
  25. #define kMenuStdMenuProc                 63
  26. #define kMenuStdMenuBarProc             63
  27.  
  28. #define kMenuNoModifiers                 0                    /*  Mask for no modifiers */
  29. #define kMenuShiftModifier                 0x01                /*  Mask for shift key modifier */
  30. #define kMenuOptionModifier             0x02                /*  Mask for option key modifier */
  31. #define kMenuControlModifier             0x04                /*  Mask for control key modifier */
  32. #define kMenuNoCommandModifier             0x08                /*  Mask for no command key modifier */
  33.  
  34. #define kMenuNoIcon                     0                    /*  No icon */
  35. #define kMenuIconType                     1                    /*  Type for ICON */
  36. #define kMenuShrinkIconType             2                    /*  Type for ICON plotted 16 x 16 */
  37. #define kMenuSmallIconType                 3                    /*  Type for SICN */
  38. #define kMenuColorIconType                 4                    /*  Type for cicn */
  39. #define kMenuIconSuiteType                 5                    /*  Type for Icon Suite */
  40. #define kMenuIconRefType                 6                    /*  Type for Icon Ref */
  41.  
  42. #define kMenuAttrExcludesMarkColumn     0x01                /*  No space is allocated for the mark character  */
  43. #define kMenuAttrAutoDisable             0x04                /*  Menu title is automatically disabled when all items are disabled  */
  44.  
  45. #define kMenuItemAttrSubmenuParentChoosable  0x04            /*  Parent item of a submenu is still selectable by the user  */
  46. #define gestaltContextualMenuAttr         'cmnu'
  47. #define gestaltContextualMenuUnusedBit     0
  48. #define gestaltContextualMenuTrapAvailable  1
  49.  
  50. #define kCMHelpItemNoHelp                 0
  51. #define kCMHelpItemAppleGuide             1
  52. #define kCMHelpItemOtherHelp             2
  53.  
  54. #define kCMNothingSelected                 0
  55. #define kCMMenuItemSelected             1
  56. #define kCMShowHelpSelected             3
  57.  
  58.  
  59. /*----------------------------MENU • Menu-----------------------------------------------*/
  60. type 'MENU' {
  61.         integer;                                                /* Menu ID                */
  62.         fill word[2];
  63.         integer         textMenuProc = 0;                        /* ID of menu def proc    */
  64.         fill word;
  65.         unsigned hex bitstring[31]
  66.                         allEnabled = 0x7FFFFFFF;                /* Enable flags         */
  67.         boolean         disabled, enabled;                        /* Menu enable            */
  68.         pstring         apple = "\0x14";                        /* Menu Title            */
  69.         wide array {
  70.                 pstring;                                        /* Item title            */
  71.                 byte            noIcon;                         /* Icon number            */
  72.                 char            noKey = "\0x00",                /* Key equivalent or    */
  73.                                 hierarchicalMenu = "\0x1B";        /* hierarchical menu    */
  74.                 char            noMark = "\0x00",                /* Marking char or id    */
  75.                                 check = "\0x12";                /* of hierarchical menu    */
  76.                 fill bit;
  77.                 unsigned bitstring[7]
  78.                                 plain;                            /* Style                */
  79.         };
  80.         byte = 0;
  81. };
  82.  
  83. /*----------------------------MBAR • Menu Bar-------------------------------------------*/
  84. type 'MBAR' {
  85.         integer = $$CountOf(MenuArray);                         /* Number of menus        */
  86.         wide array MenuArray{
  87.                 integer;                                        /* Menu resource ID     */
  88.         };
  89. };
  90.  
  91. /*----------------------------mctb • Menu Color Lookup Table----------------------------*/
  92. type 'mctb' {
  93.         integer = $$CountOf(MCTBArray);                         /* Color table count    */
  94.         wide array MCTBArray {
  95.             integer                mctbLast = -99;                    /* Menu resource ID     */
  96.             integer;                                            /* Menu Item             */
  97.             wide array [4] {
  98.                     unsigned integer;                            /* RGB: red                */
  99.                     unsigned integer;                            /*        green            */
  100.                     unsigned integer;                            /*        blue            */
  101.             };
  102.             fill word;                                            /* Reserved word        */
  103.         };
  104. };
  105.  
  106.  
  107. /*-------------------------------xmnu • Extended menu resource---------------------------*/
  108. type 'xmnu'
  109. {
  110.     switch
  111.     {
  112.         case versionZero:
  113.             key integer = 0;    /* version */
  114.  
  115.             integer = $$Countof(ItemExtensions);
  116.             array ItemExtensions
  117.             {
  118.                 switch
  119.                 {
  120.                     case skipItem:
  121.                         key integer=0;
  122.                         
  123.                     case dataItem:
  124.                         key integer=1;
  125.                         unsigned longint;                        /* Command ID */
  126.                         unsigned hex byte;                        /* modifiers */
  127.                         fill byte;                                /* icon type placeholder */
  128.                         fill long;                                /* icon handle placeholder */
  129.                         unsigned longint sysScript=-1,            /* text encoding */
  130.                                          currScript=-2;            /*     (use currScript for default)*/
  131.                         unsigned longint;                        /* refCon */
  132.                         unsigned longint;                        /* refCon2 */
  133.                         unsigned integer noHierID=0;            /* hierarchical menu ID */
  134.                         unsigned integer sysFont=0;                /* font ID */
  135.                         integer naturalGlyph=0;                    /* keyboard glyph */
  136.                 };
  137.             };
  138.     };
  139. };
  140.  
  141. #if TARGET_OS_WIN32
  142.  
  143. /*----------------------------MENA • Menu Accessory Key---------------------------------*/
  144. type 'MENA' {
  145.         integer = $$CountOf(MenuArray);                         /* Number of keys        */
  146.         longint;                                                 /* flags                */
  147.         wide array MenuArray{
  148.                 char;                                            /* key                    */
  149.         };
  150. };
  151.  
  152. #endif
  153.  
  154. #endif /* __MENUS_R__ */
  155.  
  156.